Remote devices such as portable data terminals, optical and laser indicia readers, bar code scanners, and other mobile computers, for example, typically read data represented by printed indicia such as symbols, symbology, and bar codes, for example. One type of symbol is an array of rectangular bars and spaces that are arranged in a specific way to represent elements of data in machine readable form. Optical indicia reading devices typically transmit light onto a symbol and receive light scattered and/or reflected back from a bar code symbol or indicia. The received light is interpreted by an image processor to extract the data represented by the symbol. Laser indicia reading devices typically utilize transmitted laser light. One-dimensional (1D) optical bar code readers are characterized by reading data that is encoded along a single axis, in the widths of bars and spaces, so that such symbols can be read from a single scan along that axis, provided that the symbol is imaged with sufficiently high resolution.
In order to allow the encoding of larger amounts of data in a single bar code symbol, a number of 1D stacked bar code symbologies have been developed which partition encoded data into multiple rows, each including a respective 1D bar code pattern, all or most all of which must be scanned and decoded, then linked together to form a complete message. Scanning still requires relatively higher resolution in one dimension only, but multiple linear scans are needed to read the whole symbol.
A class of bar code symbologies known as two dimensional (2D) matrix symbologies have been developed which offer orientation-free scanning and greater data densities and capacities than 1D symbologies. 2D matrix codes encode data as dark or light data elements within a regular polygonal matrix, accompanied by graphical finder, orientation and reference structures.
Many other classes of bar code symbologies and/or indicia have been known and are in widespread use including, for example, PDF417, MicroPDF417, MaxiCode, Data Matrix, QR Code, Aztec, Aztec Mesas, Code 49, EAN-UCC Composite, Snowflake, Dataglyphs, Code 39, Code 128, Codabar, UPC, EAN, Interleaved 2 of 5, Reduced Space Symbology, Code 93, Codablock F, and BC412, Postnet, Planet Code, British Post, Canadian Post, Japanese Post, OCR-A, OCR-B, Code 11, UPC, EAN, MSI, and Code 16K. Further, indicia may be represented by printed indicia, symbol indicia, biogenic/biometric indicia or any information extracted from a captured image.
Conventionally, a bar code reader, whether portable or otherwise, includes a central processor which directly controls the operations of the various electrical components housed within the reader. For example, the central processor controls detection of keypad entries, display features, wireless network communication functions, trigger detection, and bar code read and decode functionality. More specifically, the central processor typically communicates with an illumination assembly configured to illuminate a target, such as a bar code, and an imaging assembly configured to receive an image of the target and generate an electric output signal indicative of the data optically encoded therein. The output signal is then converted by an analog to digital converter and analyzed by algorithms stored in memory to decode any barcode contained in the captured image. Further, the central processor often controls a network interface configured to communicate over a wireless or wired network with a host server.
Increasingly, traditionally less dominant operating systems such as Linux, for example, have gained popularity for various reasons including power consumption/management, relative ease of use, and software application program offerings, among others. However, device manufacturers, particularly those of portable, mobile and embedded devices, have often created device drivers (software that facilitates computing system communication with a hardware device) configured to operate on traditionally more dominant operating systems such as Windows Mobile, for example. For example, bar code scanners generally have embedded drivers for facilitating scanner communication and control of imaging and/or illumination assemblies for acquiring pixel data that, when decoded, represents the value encoded in the bar code. Creating a plurality of device drivers each configured to operate on a respective operating system would require substantial resources in terms of cost and time to develop as well as ongoing manufacturer support and maintenance of the various driver.
Accordingly, there is a need for a portable data terminal configured to efficiently and conveniently supporting at least two platforms thereby reducing the need for portability of one or more device drivers and/or other software application programs.
It will be appreciated that for purposes of clarity and where deemed appropriate, reference numerals have been repeated in the figures to indicate corresponding features.